home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / iso9660 / mail / pine / c_client.arc / text0024.txt < prev    next >
Encoding:
Text File  |  1993-07-31  |  1.2 KB  |  28 lines

  1. On Tue, 19 Jan 93 13:03:11 PST, Makr Keasling wrote:
  2. > I need to receive SIGCHLD's because I am running processes in the
  3. > "background"
  4. > and need to know when they are finished.  The SIGCHLD that is received is
  5. > from the process that gets forked when trying to connect via /etc/rimapd.
  6. > The problem occurs when network latency is high.
  7. >
  8. > I would like to know if there is a better, more portable solution to this
  9. > problem.
  10.  
  11. You probably have to defer any signal which may adversely impact TCP every
  12. time you call c-client.  I'm sure SIGCHLD isn't the only one; nor is TCP open
  13. the only thing that can be adversely impacted by a signal at the wrong time.
  14. This is a deficiency in the Unix kernel.  Ideally, a signal should just call
  15. the signal handler and let you resume the TCP system call (perhaps by backing
  16. out into user mode so redoing the system call resumes the operation).  Very
  17. few operating systems do this right; ITS (R.I.P.) is the only one I know of
  18. that did.  ;-(
  19.  
  20. One possible way of dealing with the problem is by having the c-client part of
  21. your application run in a separate child, so it would never get SIGCHLDs.  I
  22. don't know how badly this may tangle your application though.
  23.  
  24. -- Mark --
  25.  
  26.  
  27.  
  28.